(パブリックベータ)New Relic Infrastructure Agentからログ送信ができるようになったのでやってみるよ
New Relic Infrastructure Agentがログファイル送信に対応する新機能が発表されました。
https://blog.newrelic.co.jp/product-update/new-relic-infrastructure-agent-logging-beta/
これはアツイと思ったので早速試していきます。
※ この機能は現在パブリックベータなので、今後設定方法や動作が変更される可能性があります。
今までサーバーからLogを送るには
試す前に今までサーバーからNew Relic Logsにログを送る時はどうしなければいけなかったか確認します。
ドキュメントに書かれている方法としては、
- Fluentdプラグイン(推奨)
- AWS CloudWatchプラグイン
- AWS FireLensプラグイン
- Fluent Bitプラグイン
- Kubernetesプラグイン
- Logstashプラグイン
- ベクタープラグイン
上記のものがあります。推奨されているFluentdプラグインを利用している方が多いのではないでしょうか。
サーバーから直接Fluentdをかまして送ったり、
aggregatorを用意して集約後送ったりすることをしているかと思います。
その他、ログAPIを使用して送ることも可能です。
New Relic Infrastructure Agentから送るには
前提
- New Relic Infrastructureサブスクリプションが必要
- New Relic Infrastructureを使用してログを転送する に書かれているオペレーティングシステム
- New Relic Infrastructure Agentバージョン1.11.4以上
やってみる
今回はAmazon Linux 2の環境でやってみます。
エージェントをインストールする
1.構成ファイルの作成とライセンスキー
echo "license_key:YOUR_LICENSE_KEY " | sudo tee -a /etc/newrelic-infra.yml
2.エージェントのyumリポジトリを作成する
sudo curl -o /etc/yum.repos.d/newrelic-infra.repo https://download.newrelic.com/infrastructure_agent/linux/yum/el/7/x86_64/newrelic-infra.repo
3.yum キャッシュを更新する
sudo yum -q makecache -y --disablerepo='*' --enablerepo='newrelic-infra'
4.インストール
sudo yum install newrelic-infra -y
バージョンの確認
$ newrelic-infra -version New Relic Infrastructure Agent version: 1.11.4
以下のコマンドで実行されているか確認できます
$ ps ax | grep newrelic 5418 ? Ssl 0:00 /usr/bin/newrelic-infra-service 5445 ? Sl 0:00 /usr/bin/newrelic-infra
ログ転送機能の新しい構成ファイルを追加
1.Logging Forwarder構成フォルダーに移動
/etc/newrelic-infra/logging.d/
ディレクトリが自動的に作成されています。
$ cd /etc/newrelic-infra/logging.d/
2.ログファイルを指定するYAMLファイルを作成
$ sudo vi logs.yml
以下の内容を追記してみます。
logs: - name: "test_log" file: /var/log/test.log
なお、エージェントを再起動する必要はありません。 YAMLファイルを特定のディレクトリに配置するだけでログの収集が可能になります.
YAMLファイルの構成ですが、
構成パラメーター に書かれているパラメーターをサポートしていますのでご確認ください。
ログファイルに書き込んでみる
追加した/var/log/test.log
に手動で何か書き込んでみます。
sudo echo "2020-04-01 14:30:31 1 send new relic logs" >> /var/log/test.log
上記を追加して保存します。
設定が正しければログが送信されるはずです。
New Relic ONEで確認
New Relic ONEのダッシュボードにいき、Logsをクリックします。
New Relic Logsの画面を確認してみると
ログが送信されていました!
送信するログの追加
今後は別のログも送信してみます。
/etc/newrelic-infra/logging.d/logs.yml
に以下を追記します
- name: "messages" file: /var/log/messages
ダッシュボードで確認してみると
messagesの内容が送られていました。
最後に
簡単な紹介でしたが、Infrastructure Agentからログ送信を行なってみました。
Fluentdプラグインのインストール、Log Aggregatorサーバーの用意、運用などを行わずYAMLファイルをちょっと書くだけでログの送信が可能となるので手間がかなり省かれるのではないでしょうか。
開発環境等でトライアルを行い、フィードバックして正式リリースまで待ちたいと思います。